using System.Collections.Generic;
using Managistics.Model;

namespace Managistics.Core.Repositories
{
    public interface IAdjustInStockRepository : IRepository<AdjustInStock, int>
    {
        /// <summary>
        /// Get all adjusted goods in month
        /// </summary>
        /// <param name="month">The month option to check</param>
        /// <param name="year">The year option to check</param>
        /// <param name="parityCode">The parity code or empty to check all goods</param>
        /// <returns></returns>
        IList<AdjustInStock> GetGoodsAdjustedInMonth(int month, int year, string parityCode);

        /// <summary>
        /// Check to known that the stock has been adjusted in mont/year
        /// </summary>
        /// <param name="month">The month option to check</param>
        /// <param name="year">The year option to check</param>
        /// <param name="parityCode">The parity code or empty to check all goods</param>
        /// <returns></returns>
        bool HasAdjustedInMonth(int month, int year, string parityCode);

        /// <summary>
        /// Remove all adjust sheets in month/year
        /// </summary>
        /// <param name="month"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        int RemoveAllAdjustInMonth(int month, int year);

        void SaveOrUpdateGood(AdjustInStock adjust);
    }
}